package com.codi.bus.core.service;

import com.codi.base.exception.BaseAppException;
import com.codi.bus.core.resultModel.*;
import com.codi.bus.core.service.model.PortfolioModel;
import com.codi.bus.core.service.model.ShareModel;
import com.codi.bus.exception.BaseException;

import java.util.List;

/**
 * Created by asus on 2018/6/13.
 */
public interface LocalAssetsService {
    // 获取所有基金资产
    ShareListResult getAllShares(Long userId, Integer requestNum, Integer beginNum) throws BaseException, BaseAppException;

    // 获取单个基金资产
    BaseResult getFundShares(Long userId, String fundCode) throws BaseException, BaseAppException;

    WalletDetailResult getWalletDetailByFundCode(Long userId, String fundCode) throws BaseAppException;

    WalletDetailResultV2 getWalletList(Long userId) throws BaseAppException;

    CashChangeListResult getWalletCashChangeDetails(Long userId, String fundCode);

    List<ShareModel> getShareModel(List<ShareModel> normalShares, String fundCode);

    /**
     * 查询组合具体基金信息
     *
     * @param userId
     * @param portfolioCode
     * @return
     */
    PortfolioModel queryPortfolioFunds(Long userId, String portfolioCode);

    /**
     * 查询组合列表
     *
     * @param userId
     * @return
     */
    AssetsPortfolioResult queryPortfolioList(Long userId);

    AssetsPortfolioResult queryPortfolioListForAssets(Long userId);

    /**
     * 查询个人总资产
     *
     * @param userId
     * @return
     */
    AssetsResult queryAssets(Long userId);

    void getNormalAssets(AssetsResult assetsResult, ShareListResult allShares);
}
